<?php
/**
 * Хелпер категорий
 * 
 * Хелпер категорий
 * @author Anton Zavidov
 * @package myLiveShop
 */

/**
 * Хелпер категорий
 *
 */
class HelperTag{
	public static function autocomplete(){
		global $views;
		$q = Requestlocal::getString('term','');
		$limit = Requestlocal::getString('limit',30);
		$list=import('model.tag',true)->load(false,array(ModelTag::F_TAG_ID, ModelTag::F_TITLE),array(
	       'where'=>ModelTag::F_TITLE.' LIKE("%'.$q.'%")',
	       'limit'=>$limit,
	       'order'=>ModelTag::F_TITLE
	    ));
        $result=array();
        foreach($list as $item){
            $result[]=array(
                'label'=>$item[ModelTag::F_TITLE],
                'value'=>$item[ModelTag::F_TAG_ID]
            );
        }
        $GLOBALS['clean']=true;
		$views->setAll($result);
	}

    public static function setTags($model, $model_id, $list){
        $model_types = array('article','shop','product');
        if(in_array($model, $model_types)<0){
            new CoreExeption('Нет возможности добавить тег для модели '.$model, E_WARNING, __FILE__, __LINE__, array('model'=>$model, 'model_id'=>$model_id));
            return false;
        }
        $list = Core::json($list);
        if(!$list) return false;
        $id_name = $model."_id";
        $modelClass = import('model.tag_to_'.$model, true);
        $modelClass->delete(false, array('where' => $id_name." = ".$model_id));
        $tagClass = import('model.tag', true);
        if(!count($list)) return true;
        foreach($list as $item){
            $id = $item[0];
            $name = $item[1];
            if(!$id){
                $id = $tagClass->save(array(
                    ModelTag::F_USER_ID => Core::user(),
                    ModelTag::F_TITLE => $name
                ));
            }
            if(!is_numeric($id) || !$id) {
                new CoreExeption('Возникла ошибка при создании тега '.$name, E_WARNING, __FILE__, __LINE__, array('model'=>$model, 'model_id'=>$model_id));
                return false;
            }
            $save_data = array('tag_id'=>$id);
            $save_data[$id_name] = $model_id;
            $result = $modelClass->save($save_data);
            if(is_array($result)) {
                new CoreExeption('Возникла ошибка при добавлении тега '.$name, E_WARNING, __FILE__, __LINE__, array('model'=>$model, 'model_id'=>$model_id));
                return false;
            }
        }
        return true;

    }

}